#include <bits/stdc++.h>

//打印数组
void print(int arr[], int end) {
  printf("%d", arr[0]);
  for (int i = 1; i < end; ++i) {
    printf(", %d", arr[i]);
  }
}

void FullPermutation(int arr[], int begin, int end) {
  if (begin == end) {
    print(arr, end);
    printf("\n");
    return;
  }
  if (begin == 0) {
    // 对数组排序，便于后续处理重复元素（默认数组下标从0开始）
    std::sort(arr, arr + end);
  }
  for (int i = begin; i < end; ++i) {
    // 跳过重复的元素，重复有两种情况：
    // 1、首部（arr[begin:begin]，只有一个元素）与尾部（arr[begin+1:end],余下的所有元素）重复；
    // 2、尾部元素重复
    if (begin != i && (arr[begin] == arr[i] || arr[i] == arr[i - 1])) {
      continue;
    }
    std::swap(arr[begin], arr[i]);  //交换两个元素值
    FullPermutation(arr, begin + 1, end);
    std::swap(arr[begin], arr[i]);
  }
}

int arr[1000] = {0};
int main() {
  int n;
  scanf("%d", &n);
  for (int i = 0; i < n; i++) {
    scanf("%d", &arr[i]);
  }
  FullPermutation(arr, 0, n);
  return 0;
}